package com.yang.dto.req;

import com.yang.dao.entity.SkusDO;
import com.yang.dao.entity.SpecsDO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.*;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 商品更新请求参数
 * 作者：孤城暖阳y
 * 时间：2025-03-11
 */
@Data
@Schema(description = "商品更新请求参数")
public class CommodityUpdateReqDTO {

    /**
     * 商品分类ID
     */
    @Schema(description = "商品所属分类ID")
    private Integer categoryId;

    /**
     * 商品ID（更新必传）
     */
    @Schema(description = "商品唯一标识", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "商品ID不能为空")
    private Long commodityId;

    /**
     * 商品价格
     */
    @Schema(description = "商品价格")
    @DecimalMin(value = "0.01", message = "商品价格不能小于0.01")
    @Digits(integer = 6, fraction = 2, message = "价格格式不正确")
    private BigDecimal commodityPrice;

    /**
     * 商品标题
     */
    @Schema(description = "商品名称/标题")
    private String commodityTitle;

    /**
     * 商品图片url
     */
    @Schema(description = "商品封面图URL地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "商品图片不能为空")
    private List<String> imgUrl;

    /**
     * 商品规格列表
     */
    @Schema(description = "商品规格列表")
    private List<SpecsDO> newSpecs;

    /**
     * 商品sku列表
     */
    @Schema(description = "商品的sku列表")
    private List<SkusDO> skuList;
}
